package ufc.quixada.petti.model;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;


@Entity
@Table(name = "evento")
@SequenceGenerator(name = "idEvento", sequenceName = "idEvento", allocationSize = 1)
public class Evento {

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "idEvento")
	private Long idEvento;
	private String nome;
	private String sigla;
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "evento_tem_atividades", joinColumns = @JoinColumn(name = "idEvento"), inverseJoinColumns = @JoinColumn(name = "idAtividade"))
    private List<Atividade> repositorioAtividades;
	
	@ManyToMany(fetch = FetchType.LAZY)
	@JoinTable(name = "evento_possui_organizadores", joinColumns = @JoinColumn(name = "idEvento"), inverseJoinColumns = @JoinColumn(name = "idOrganizador"))
		private List<Organizador> organizadores;

    public Long getIdEvento() {
        return idEvento;
    }

    public void setIdEvento(Long idEvento) {
        this.idEvento = idEvento;
    }

    public List<Organizador> getOrganizadores() {
        return organizadores;
    }

    public void setOrganizadores(List<Organizador> organizadores) {
        this.organizadores = organizadores;
    }
	
        
        
        
	public Evento() {

	}

	public Evento(String nome) {
		super();
		this.nome = nome;
	}

	public List<Atividade> getRepositorioAtividades() {
		return repositorioAtividades;
	}

	public void setRepositorioAtividades(List<Atividade> repositorioAtividades) {
		this.repositorioAtividades = repositorioAtividades;
	}

	public Long getId() {
		return idEvento;
	}

	public void setId(Long id) {
		this.idEvento = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSigla() {
		return sigla;
	}

	public void setSigla(String sigla) {
		this.sigla = sigla;
	}

	/*
	 * public RepositorioAtividades getRepositorioAtividades() { return
	 * repositorioAtividades; }
	 * 
	 * public void setRepositorioAtividades( RepositorioAtividades
	 * repositorioAtividades) { this.repositorioAtividades =
	 * repositorioAtividades; }
	 */

}
